#pragma once

#include "MouseState.h"
#include "Vector2.h"

class MouseManager
{
private:
	MouseManager();
public:
	~MouseManager();
public:
	void Update();
public:
	static MouseManager*	GetInstance();
public:
	Vector2i				GetPosition() const;
	Vector2i				GetPositionChange() const;
	void					SetPosition(const Vector2i& position) const;
	void					SetVisible(bool visible) const;
	int						GetWheel() const;
	int						GetWheelChange() const;
	bool					IsButtonDown(MouseButtons button) const;
	bool					IsButtonUp(MouseButtons button) const;
	bool					IsButtonPressed(MouseButtons button) const;
	bool					IsButtonReleased(MouseButtons button) const;
private:
	static MouseManager* 	m_pInstance;
private:
	MouseState				m_oCurrentState;
	MouseState				m_oPreviousState;
};
